<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>OpenLayers v8.2.0 API - Module: ol/expr/expression</title>
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js"
        crossorigin="anonymous"></script>
    <link rel="stylesheet" type="text/css"
        href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css"
        href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.1.2/css/fontawesome.min.css"
        crossorigin="anonymous">
    <link rel="stylesheet" type="text/css"
        href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.1.2/css/solid.css" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css"
        href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.1.2/css/brands.css" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="styles/prettify-tomorrow.css">
    <link rel="stylesheet" type="text/css" href="styles/jaguar.css">
    <link rel="stylesheet" type="text/css" href="styles/carbon.css">
    <link rel="stylesheet" type="text/css" href="/theme/ol.css">
    <link rel="stylesheet" type="text/css" href="/theme/site.css">
</head>

<body>
    <header class="navbar navbar-expand-sm navbar-dark mb-3 px-3 py-0 fixed-top" role="navigation">
        <a class="navbar-brand" href="/"><img src="/theme/img/logo-dark.svg" width="70" height="70"
                alt="">&nbsp;OpenLayers</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#olmenu"
            aria-controls="olmenu" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>

        <!-- menu items that get hidden below 768px width -->
        <nav class="collapse navbar-collapse" id="olmenu">
            <ul class="nav navbar-nav ms-auto">
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="docdropdown" role="button"
                        data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Docs</a>
                    <div class="dropdown-menu dropdown-menu-end mb-3" aria-labelledby="docdropdown">
                        <a class="dropdown-item" href="/doc/">Docs</a>
                        <div class="dropdown-divider"></div>
                        <a class="dropdown-item" href="/doc/quickstart.html"><i
                                class="fa fa-check fa-fw me-2 fa-lg"></i>快速入门</a>
                        <a class="dropdown-item" href="/doc/faq.html"><i
                                class="fa fa-question fa-fw me-2 fa-lg"></i>FAQ</a>
                        <a class="dropdown-item" href="/doc/tutorials/"><i
                                class="fa fa-book fa-fw me-2 fa-lg"></i>Tutorials</a>
                        <div class="dropdown-divider"></div>
                        <a class="dropdown-item" href="https://stackoverflow.com/questions/tagged/openlayers"><i
                                class="fab fa-stack-overflow fa-fw me-2"></i>Ask a Question</a>
                    </div>
                </li>
                <li class="nav-item"><a class="nav-link" href="/en/latest/examples/">Examples</a></li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="apidropdown" role="button"
                        data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        <i class="fa fa-sitemap me-1"></i>API
                    </a>
                    <div class="dropdown-menu dropdown-menu-end mb-3" aria-labelledby="apidropdown">
                        <a class="dropdown-item" href="/en/latest/apidoc/"><i
                                class="fa fa-sitemap fa-fw me-2 fa-lg"></i>v8.2.0
                            (latest)</a </div>
                </li>
            </ul>
        </nav>
    </header>

    <div class="container-fluid">
        <div id="wrap" class="row">
            <div class="navigation col-md-4 col-lg-3">
                <div class="search-wrapper">
                    <div class="search">
                        <input id="search" type="text" autocomplete="off" class="form-control input-sm"
                            placeholder="Search Documentation">
                    </div>
                </div>
                <div class="navigation-list-wrapper">
                    <ul class="navigation-list search-empty">
                        <li class="item item-module toggle-manual toggle-manual-show"
                            data-longname="module:ol/expr/expression" data-name="ol/expr/expression">
                            <span class="title toggle">
                                <span class="fa fa-plus me-2 mt-1"></span>
                                <span><a href="module-ol_expr_expression.html">ol​/expr​/expression</a></span>
                            </span>
                            <div class="member-list" data-type="typedefs">
                                <span class="subtitle">Typedefs</span>
                                <ul>
                                    <li data-name="argvalidator"><a
                                            href="module-ol_expr_expression.html#~ArgValidator">ArgValidator</a>
                                    <li data-name="encodedexpression"><a
                                            href="module-ol_expr_expression.html#~EncodedExpression">EncodedExpression</a>
                                    <li data-name="expression"><a
                                            href="module-ol_expr_expression.html#~Expression">Expression</a>
                                    <li data-name="expressionvalue"><a
                                            href="module-ol_expr_expression.html#~ExpressionValue">ExpressionValue</a>
                                    <li data-name="literalvalue"><a
                                            href="module-ol_expr_expression.html#~LiteralValue">LiteralValue</a>
                                    <li data-name="parser"><a href="module-ol_expr_expression.html#~Parser">Parser</a>
                                    <li data-name="parsingcontext"><a
                                            href="module-ol_expr_expression.html#~ParsingContext">ParsingContext</a>
                                </ul>
                            </div>
                        <li class="loading">Loading …
                    </ul>
                </div>
            </div>

            <div class="main col-md-8 col-lg-9">
                <h1 class="page-title" data-filename="module-ol_expr_expression.html">Module: ol/expr/expression</h1>
                <div id="latest-check" class="alert alert-warning alert-dismissible" role="alert" style="display:none">
                    <button id="latest-dismiss" type="button" class="btn-close" data-bs-dismiss="alert"
                        aria-label="Close"></button>
                    This documentation is for OpenLayers v<span id="package-version">8.2.0</span>. The <a
                        id="latest-link" href="#" class="alert-link">latest</a> is v<span id="latest-version"></span>.
                </div>




                <section class="content">

                    <header>
                        <h2 class="my-3">ol/expr/expression
                        </h2>
                        <br>




                        <div class="row p-3 ">
                            <!-- <div id="ad" class="col-lg-5 order-2 align-self-center border rounded bg-light ">
                                <script async type="text/javascript"
                                    src="https://cdn.carbonads.com/carbon.js?serve=CE7DV53U&placement=openlayersorg"
                                    id="_carbonads_js"></script>
                            </div> -->

                        </div>
                    </header>

                    <article>
                        <div class="container-overview">






                            <dl class="details">





















                            </dl>




                        </div>




















                        <h3 class="subsection-title">Type Definitions</h3>

                        <dl>

                            <dt class="">

                                <div class="nameContainer">
                                    <div class="anchor" id="~ArgValidator">
                                    </div>
                                    <h4 class="name">
                                        ArgValidator<span class="signature">()</span>



                                    </h4>

                                    <div class="tag-source">
                                        <a
                                            href="https://github.com/openlayers/openlayers/blob/v8.2.0/src/ol/expr/expression.js">expr/expression.js</a>,
                                        <a
                                            href="https://github.com/openlayers/openlayers/blob/v8.2.0/src/ol/expr/expression.js#L616">line
                                            616</a>
                                    </div>

                                </div>


                            </dt>
                            <dd class="">




                                <div class="description">
                                    <p>An argument validator applies various checks to an encoded expression arguments
                                        Returns the parsed arguments if any.
                                        Third argument is the array of parsed arguments from previous validators
                                        Fourth argument is an optional type hint</p>
                                </div>











                                <dl class="details">





















                                </dl>













                            </dd>



                            <dt class="">
                                <div class="nameContainer">
                                    <div class="anchor" id="~EncodedExpression">
                                    </div>
                                    <h4 class="name">
                                        EncodedExpression<span
                                            class="type-signature type module:ol/expr/expression~literalvalue">{<a
                                                href="module-ol_expr_expression.html#~LiteralValue">LiteralValue</a>}</span>
                                        <span class="type-signature type array">{Array}</span>


                                    </h4>
                                </div>

                            </dt>
                            <dd class="">



                                <dl class="details">





















                                </dl>



                            </dd>



                            <dt class="">
                                <div class="nameContainer">
                                    <div class="anchor" id="~Expression">
                                    </div>
                                    <h4 class="name">
                                        Expression<span
                                            class="type-signature type module:ol/expr/expression.literalexpression">{LiteralExpression}</span>
                                        <span
                                            class="type-signature type module:ol/expr/expression.callexpression">{CallExpression}</span>


                                    </h4>
                                </div>

                            </dt>
                            <dd class="">



                                <dl class="details">





















                                </dl>



                            </dd>



                            <dt class="">
                                <div class="nameContainer">
                                    <div class="anchor" id="~ExpressionValue">
                                    </div>
                                    <h4 class="name">
                                        ExpressionValue<span class="type-signature type array.<*>">{Array.&lt;*>}</span>
                                        <span class="type-signature type module:ol/color~color">{<a
                                                href="module-ol_color.html#~Color">Color</a>}</span> <span
                                            class="type-signature type string">{string}</span> <span
                                            class="type-signature type number">{number}</span> <span
                                            class="type-signature type boolean">{boolean}</span>


                                    </h4>
                                </div>

                            </dt>
                            <dd class="">

                                <div class="description">
                                    <p>Base type used for literal style parameters; can be a number literal or the
                                        output of an operator,
                                        which in turns takes <a
                                            href="module-ol_expr_expression.html#~ExpressionValue"><code>ExpressionValue</code></a>
                                        arguments.</p>
                                    <p>The following operators can be used:</p>
                                    <ul>
                                        <li>
                                            <p>Reading operators:</p>
                                            <ul>
                                                <li><code>['band', bandIndex, xOffset, yOffset]</code> For tile layers
                                                    only. Fetches pixel values from band
                                                    <code>bandIndex</code> of the source's data. The first
                                                    <code>bandIndex</code> of the source data is <code>1</code>. Fetched
                                                    values
                                                    are in the 0..1 range. <a
                                                        href="module-ol_source_TileImage-TileImage.html"><code>TileImage</code></a>
                                                    sources have 4 bands: red,
                                                    green, blue and alpha. <a
                                                        href="module-ol_source_DataTile-DataTileSource.html"><code>DataTileSource</code></a>
                                                    sources can have any number
                                                    of bands, depending on the underlying data source and
                                                    <a
                                                        href="module-ol_source_GeoTIFF.html#~Options"><code>configuration</code></a>.
                                                    <code>xOffset</code> and <code>yOffset</code> are optional
                                                    and allow specifying pixel offsets for x and y. This is used for
                                                    sampling data from neighboring pixels.
                                                </li>
                                                <li><code>['get', 'attributeName', typeHint]</code> fetches a feature
                                                    property value, similar to <code>feature.get('attributeName')</code>
                                                    A type hint can optionally be specified, in case the resulting
                                                    expression contains a type ambiguity which
                                                    will make it invalid. Type hints can be one of: 'string', 'color',
                                                    'number', 'boolean', 'number[]'</li>
                                                <li><code>['geometry-type']</code> returns a feature's geometry type as
                                                    string, either: 'LineString', 'Point' or 'Polygon'
                                                    <code>Multi*</code> values are returned as their singular equivalent
                                                    <code>Circle</code> geometries are returned as 'Polygon'
                                                    <code>GeometryCollection</code> geometries are returned as the type
                                                    of the first geometry found in the collection
                                                </li>
                                                <li><code>['resolution']</code> returns the current resolution</li>
                                                <li><code>['time']</code> returns the time in seconds since the creation
                                                    of the layer</li>
                                                <li><code>['var', 'varName']</code> fetches a value from the style
                                                    variables; will throw an error if that variable is undefined</li>
                                                <li><code>['zoom']</code> returns the current zoom level</li>
                                            </ul>
                                        </li>
                                        <li>
                                            <p>Math operators:</p>
                                            <ul>
                                                <li><code>['*', value1, value2, ...]</code> multiplies the values
                                                    (either numbers or colors)</li>
                                                <li><code>['/', value1, value2]</code> divides <code>value1</code> by
                                                    <code>value2</code>
                                                </li>
                                                <li><code>['+', value1, value2, ...]</code> adds the values</li>
                                                <li><code>['-', value1, value2]</code> subtracts <code>value2</code>
                                                    from <code>value1</code></li>
                                                <li><code>['clamp', value, low, high]</code> clamps <code>value</code>
                                                    between <code>low</code> and <code>high</code></li>
                                                <li><code>['%', value1, value2]</code> returns the result of
                                                    <code>value1 % value2</code> (modulo)
                                                </li>
                                                <li><code>['^', value1, value2]</code> returns the value of
                                                    <code>value1</code> raised to the <code>value2</code> power
                                                </li>
                                                <li><code>['abs', value1]</code> returns the absolute value of
                                                    <code>value1</code>
                                                </li>
                                                <li><code>['floor', value1]</code> returns the nearest integer less than
                                                    or equal to <code>value1</code></li>
                                                <li><code>['round', value1]</code> returns the nearest integer to
                                                    <code>value1</code>
                                                </li>
                                                <li><code>['ceil', value1]</code> returns the nearest integer greater
                                                    than or equal to <code>value1</code></li>
                                                <li><code>['sin', value1]</code> returns the sine of <code>value1</code>
                                                </li>
                                                <li><code>['cos', value1]</code> returns the cosine of
                                                    <code>value1</code>
                                                </li>
                                                <li><code>['atan', value1, value2]</code> returns
                                                    <code>atan2(value1, value2)</code>. If <code>value2</code> is not
                                                    provided, returns <code>atan(value1)</code>
                                                </li>
                                                <li><code>['sqrt', value1]</code> returns the square root of
                                                    <code>value1</code>
                                                </li>
                                            </ul>
                                        </li>
                                        <li>
                                            <p>Transform operators:</p>
                                            <ul>
                                                <li><code>['case', condition1, output1, ...conditionN, outputN, fallback]</code>
                                                    selects the first output whose corresponding
                                                    condition evaluates to <code>true</code>. If no match is found,
                                                    returns the <code>fallback</code> value.
                                                    All conditions should be <code>boolean</code>, output and fallback
                                                    can be any kind.</li>
                                                <li><code>['match', input, match1, output1, ...matchN, outputN, fallback]</code>
                                                    compares the <code>input</code> value against all
                                                    provided <code>matchX</code> values, returning the output associated
                                                    with the first valid match. If no match is found,
                                                    returns the <code>fallback</code> value.
                                                    <code>input</code> and <code>matchX</code> values must all be of the
                                                    same type, and can be <code>number</code> or <code>string</code>.
                                                    <code>outputX</code> and
                                                    <code>fallback</code> values must be of the same type, and can be of
                                                    any kind.
                                                </li>
                                                <li><code>['interpolate', interpolation, input, stop1, output1, ...stopN, outputN]</code>
                                                    returns a value by interpolating between
                                                    pairs of inputs and outputs; <code>interpolation</code> can either
                                                    be <code>['linear']</code> or <code>['exponential', base]</code>
                                                    where <code>base</code> is
                                                    the rate of increase from stop A to stop B (i.e. power to which the
                                                    interpolation ratio is raised); a value
                                                    of 1 is equivalent to <code>['linear']</code>.
                                                    <code>input</code> and <code>stopX</code> values must all be of type
                                                    <code>number</code>. <code>outputX</code> values can be
                                                    <code>number</code> or <code>color</code> values.
                                                    Note: <code>input</code> will be clamped between <code>stop1</code>
                                                    and <code>stopN</code>, meaning that all output values will be
                                                    comprised
                                                    between <code>output1</code> and <code>outputN</code>.
                                                </li>
                                            </ul>
                                        </li>
                                        <li>
                                            <p>Logical operators:</p>
                                            <ul>
                                                <li><code>['&lt;', value1, value2]</code> returns <code>true</code> if
                                                    <code>value1</code> is strictly lower than <code>value2</code>, or
                                                    <code>false</code> otherwise.
                                                </li>
                                                <li><code>['&lt;=', value1, value2]</code> returns <code>true</code> if
                                                    <code>value1</code> is lower than or equals <code>value2</code>, or
                                                    <code>false</code> otherwise.
                                                </li>
                                                <li><code>['&gt;', value1, value2]</code> returns <code>true</code> if
                                                    <code>value1</code> is strictly greater than <code>value2</code>, or
                                                    <code>false</code> otherwise.
                                                </li>
                                                <li><code>['&gt;=', value1, value2]</code> returns <code>true</code> if
                                                    <code>value1</code> is greater than or equals <code>value2</code>,
                                                    or <code>false</code> otherwise.
                                                </li>
                                                <li><code>['==', value1, value2]</code> returns <code>true</code> if
                                                    <code>value1</code> equals <code>value2</code>, or
                                                    <code>false</code> otherwise.
                                                </li>
                                                <li><code>['!=', value1, value2]</code> returns <code>true</code> if
                                                    <code>value1</code> does not equal <code>value2</code>, or
                                                    <code>false</code> otherwise.
                                                </li>
                                                <li><code>['!', value1]</code> returns <code>false</code> if
                                                    <code>value1</code> is <code>true</code> or greater than
                                                    <code>0</code>, or <code>true</code> otherwise.
                                                </li>
                                                <li><code>['all', value1, value2, ...]</code> returns <code>true</code>
                                                    if all the inputs are <code>true</code>, <code>false</code>
                                                    otherwise.</li>
                                                <li><code>['any', value1, value2, ...]</code> returns <code>true</code>
                                                    if any of the inputs are <code>true</code>, <code>false</code>
                                                    otherwise.</li>
                                                <li><code>['between', value1, value2, value3]</code> returns
                                                    <code>true</code> if <code>value1</code> is contained between
                                                    <code>value2</code> and <code>value3</code>
                                                    (inclusively), or <code>false</code> otherwise.
                                                </li>
                                                <li><code>['in', needle, haystack]</code> returns <code>true</code> if
                                                    <code>needle</code> is found in <code>haystack</code>, and
                                                    <code>false</code> otherwise.
                                                    This operator has the following limitations:<ul>
                                                        <li><code>haystack</code> has to be an array of numbers or
                                                            strings (searching for a substring in a string is not
                                                            supported yet)</li>
                                                        <li>Only literal arrays are supported as <code>haystack</code>
                                                            for now; this means that <code>haystack</code> cannot be the
                                                            result of an
                                                            expression. If <code>haystack</code> is an array of strings,
                                                            use the <code>literal</code> operator to disambiguate from
                                                            an expression:
                                                            <code>['literal', ['abc', 'def', 'ghi']]</code>
                                                        </li>
                                                    </ul>
                                                </li>
                                            </ul>
                                        </li>
                                        <li>
                                            <p>Conversion operators:</p>
                                            <ul>
                                                <li><code>['array', value1, ...valueN]</code> creates a numerical array
                                                    from <code>number</code> values; please note that the amount of
                                                    values can currently only be 2, 3 or 4.</li>
                                                <li><code>['color', red, green, blue, alpha]</code> creates a
                                                    <code>color</code> value from <code>number</code> values; the
                                                    <code>alpha</code> parameter is
                                                    optional; if not specified, it will be set to 1.
                                                    Note: <code>red</code>, <code>green</code> and <code>blue</code>
                                                    components must be values between 0 and 255; <code>alpha</code>
                                                    between 0 and 1.
                                                </li>
                                                <li><code>['palette', index, colors]</code> picks a <code>color</code>
                                                    value from an array of colors using the given index; the
                                                    <code>index</code>
                                                    expression must evaluate to a number; the items in the
                                                    <code>colors</code> array must be strings with hex colors
                                                    (e.g. <code>'#86A136'</code>), colors using the rgba[a] functional
                                                    notation (e.g. <code>'rgb(134, 161, 54)'</code> or
                                                    <code>'rgba(134, 161, 54, 1)'</code>),
                                                    named colors (e.g. <code>'red'</code>), or array literals with 3
                                                    ([r, g, b]) or 4 ([r, g, b, a]) values (with r, g, and b
                                                    in the 0-255 range and a in the 0-1 range).
                                                </li>
                                            </ul>
                                        </li>
                                    </ul>
                                    <p>Values can either be literals or another operator, as they will be evaluated
                                        recursively.
                                        Literal values can be of the following types:</p>
                                    <ul>
                                        <li><code>boolean</code></li>
                                        <li><code>number</code></li>
                                        <li><code>number[]</code> (number arrays can only have a length of 2, 3 or 4)
                                        </li>
                                        <li><code>string</code></li>
                                        <li><a href="module-ol_color.html#~Color"><code>Color</code></a></li>
                                    </ul>
                                </div>



                                <dl class="details">





















                                </dl>



                            </dd>



                            <dt class="">
                                <div class="nameContainer">
                                    <div class="anchor" id="~LiteralValue">
                                    </div>
                                    <h4 class="name">
                                        LiteralValue<span class="type-signature type boolean">{boolean}</span> <span
                                            class="type-signature type number">{number}</span> <span
                                            class="type-signature type string">{string}</span> <span
                                            class="type-signature type array.<number>">{Array.&lt;number>}</span>


                                    </h4>
                                </div>

                            </dt>
                            <dd class="">



                                <dl class="details">





















                                </dl>



                            </dd>



                            <dt class="">

                                <div class="nameContainer">
                                    <div class="anchor" id="~Parser">
                                    </div>
                                    <h4 class="name">
                                        Parser<span class="signature">()</span>



                                    </h4>

                                    <div class="tag-source">
                                        <a
                                            href="https://github.com/openlayers/openlayers/blob/v8.2.0/src/ol/expr/expression.js">expr/expression.js</a>,
                                        <a
                                            href="https://github.com/openlayers/openlayers/blob/v8.2.0/src/ol/expr/expression.js#L369">line
                                            369</a>
                                    </div>

                                </div>


                            </dt>
                            <dd class="">




                                <div class="description">
                                    <p>Third argument is a type hint</p>
                                </div>











                                <dl class="details">





















                                </dl>













                            </dd>



                            <dt class="">
                                <div class="nameContainer">
                                    <div class="anchor" id="~ParsingContext">
                                    </div>
                                    <h4 class="name">
                                        ParsingContext<span class="type-signature type object">{Object}</span>


                                    </h4>
                                </div>

                            </dt>
                            <dd class="">



                                <dl class="details">


                                    <h5 class="subsection-title">Properties:</h5>

                                    <dl>

                                        <table class="props">
                                            <thead>
                                                <tr>

                                                    <th>Name</th>


                                                    <th>Type</th>

                                                    <th class="last">Description</th>
                                                </tr>
                                            </thead>

                                            <tbody>


                                                <tr>

                                                    <td class="name"><code>variables</code></td>


                                                    <td class="type">


                                                        <span class="param-type">Set.&lt;string></span>




                                                    </td>

                                                    <td class="description last">
                                                        <p>Variables referenced with the 'var' operator.</p>

                                                    </td>
                                                </tr>



                                                <tr>

                                                    <td class="name"><code>properties</code></td>


                                                    <td class="type">


                                                        <span class="param-type">Set.&lt;string></span>




                                                    </td>

                                                    <td class="description last">
                                                        <p>Properties referenced with the 'get' operator.</p>

                                                    </td>
                                                </tr>



                                                <tr>

                                                    <td class="name"><code>featureId</code></td>


                                                    <td class="type">


                                                        <span class="param-type">boolean</span>




                                                    </td>

                                                    <td class="description last">
                                                        <p>The style uses the feature id.</p>

                                                    </td>
                                                </tr>



                                                <tr>

                                                    <td class="name"><code>style</code></td>


                                                    <td class="type">


                                                        <span class="param-type"><a
                                                                href="module-ol_style_flat.html#~FlatStyle">FlatStyle</a></span>
                                                        |

                                                        <span class="param-type"><a
                                                                href="module-ol_style_webgl.html#~WebGLStyle">WebGLStyle</a></span>




                                                    </td>

                                                    <td class="description last">
                                                        <p>The style being parsed</p>

                                                    </td>
                                                </tr>


                                            </tbody>
                                        </table>
                                    </dl>






















                                </dl>



                            </dd>

                        </dl>



                    </article>

                </section>




            </div>
        </div>
    </div>
    <script>prettyPrint();</script>
    <script src="scripts/linenumber.js"></script>
    <script src="scripts/main.js"></script>
</body>

</html>